
public class Vector implements Structura{
	protected int vector[];
	private int dim; //dimensiunea maxima a vectorului, folosita pentru initializarea acestuia
	private int n; //dimensiunea vectorului
	
	//constructor implicit
	public Vector(){
		n = 0; 
		dim = 30;
		vector =  new int[dim]; // initializarea vectorului
	}
	
	//constructor explicit
	public Vector (int dimensiune){	// dimensiunea vectorului este trimisa ca argument
		n = 0;
		dim = dimensiune;
		vector = new int[dim];
	}
	
	//setarea elementelor vectorului
	public void setVector(int v[]){	
		int n2 = v.length;
		for (int i=0; i < n2; i++)
			vector[i]=v[i];
	}
	
	//valoarea returnata va fi un tablou de aceea folosim int[]
	public int[] getVector(){
		return vector;
	}
	
	//adauga element in vector
	public void adauga (int e){
		if (n >= dim)
			System.out.println("Vectorul este plin, nu se mai poate adauga!");
		else{
			vector[n]=e;
			n++;
		}
	}
	
	//suprimarea unui element folosind un vector ajutator
	public void sterge(int elem){
		int i=0,ii=vector.length;;
		int[] a=new int[dim];
		int iAux=0;
		int nrAparitii=0;
		while(i<ii)	{
			if (this.vector[i]!=elem){
				a[iAux]=this.vector[i];
				iAux++;
			}
			else
				nrAparitii++;
			
			i++;
		}
		this.setVector(a);
		n=n-nrAparitii;
	}
	
	//suprimarea eficienta fara a folosi un vector ajutator 
	public void sterge2(int elem){
		int i=0;
		for (i=0; i<n; i++)
			if (vector[i] == elem){
				vector[i] = vector[n-1];
				n--;
				i--;
			}
	}
	
	
	//afisarea vectorlui
	public void afiseaza(){
		if(n>0){
			for(int i=0; i<n; i++)
				System.out.println("vector["+i+"]="+this.vector[i]);
		}
		else
			System.out.println("Vectorul nu are elemente!");
		
		System.out.println("\n");
	}
	
}
